Error Handling এবং Debugging হলো ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের গুরুত্বপূর্ণ অংশ, যা কোডের ত্রুটি চিহ্নিত করতে এবং সেগুলি সমাধান করতে সহায়তা করে। CodeIgniter ত্রুটি পরিচালনা এবং ডিবাগিংয়ের জন্য অনেক সুবিধা এবং টুল প্রদান করে। এই প্রক্রিয়াগুলির মাধ্যমে ডেভেলপাররা ত্রুটি গুলি দ্রুত চিহ্নিত এবং সমাধান করতে পারে।
CodeIgniter ত্রুটি পরিচালনার জন্য বিভিন্ন স্তরে ত্রুটি ধরতে এবং সেগুলি কাস্টমাইজড ত্রুটি মেসেজ সহ প্রদর্শন করতে সক্ষম। এটি log files তৈরি করতে এবং ডেভেলপমেন্ট ও প্রোডাকশন পরিবেশে আলাদা আলাদা ত্রুটি হ্যান্ডলিং ব্যবহার করতে সাহায্য করে।
CodeIgniter তে ত্রুটি স্তর (error levels) নির্ধারণ করা হয় যা আপনি আপনার পরিবেশ অনুযায়ী কনফিগার করতে পারেন। নিচে ত্রুটি স্তরের তালিকা দেয়া হলো:
Error Level | বর্ণনা |
---|---|
0 (No errors) | কোন ত্রুটি নয়। |
1 (Error) | রানটাইম ত্রুটি। |
2 (Debug) | উন্নত ডিবাগ ত্রুটি, তথ্যসহ। |
3 (Info) | সাধারণ তথ্য। |
4 (All) | সব ধরনের ত্রুটি। |
CodeIgniter Configuration ফাইলে ত্রুটি স্তর সেট করতে, application/config/config.php
ফাইলে log_threshold
কনফিগারেশন ব্যবহার করা হয়।
$config['log_threshold'] = 4; // সব ধরনের ত্রুটি দেখাবে
এছাড়া log_path এবং log_file নামক ফাইল লোড করা যায়।
CodeIgniter তে ত্রুটি লগ করার জন্য log_message()
ফাংশন ব্যবহার করা হয়। আপনি error, debug, info, বা all স্তরের ত্রুটি লগ করতে পারেন।
log_message('error', 'This is an error message');
log_message('debug', 'This is a debug message');
log_message('info', 'This is an info message');
level
(error, debug, info)।message
যা আপনি লগ করতে চান।CodeIgniter আপনাকে কাস্টম 404 পৃষ্ঠা তৈরি করতে দেয়। আপনি application/views/errors/html/error_404.php
ফাইলে কাস্টম 404 পৃষ্ঠা তৈরি করতে পারেন। ডিফল্ট হিসেবে, 404_override
ফিল্ডটি routes.php
তে ব্যবহার করা হয়।
$route['404_override'] = 'errors/page_not_found';
এটি ব্যবহারকারী যখন একটি ভুল URL দিয়ে প্রবেশ করে তখন page_not_found কন্ট্রোলারকে কল করবে।
CodeIgniter ডিবাগিং এর জন্য কিছু শক্তিশালী টুল এবং মেথড প্রদান করে যা ডেভেলপারদের ত্রুটি দ্রুত চিহ্নিত করতে সহায়ক।
display_errors
যদি আপনি ডেভেলপমেন্ট পরিবেশে থাকেন, তাহলে ত্রুটির বার্তা সরাসরি ব্রাউজারে প্রদর্শন করতে পারেন। এটি index.php ফাইলে ENVIRONMENT
সেটিং করে করা হয়:
define('ENVIRONMENT', 'development'); // ডেভেলপমেন্ট মোড
এছাড়া, php.ini ফাইলে display_errors
সেটিংটি চালু করতে পারেন:
display_errors = On
var_dump()
and print_r()
আপনি সাধারণভাবে var_dump()
বা print_r()
ব্যবহার করতে পারেন ভেরিয়েবলের মান দেখতে, তবে প্রোডাকশন পরিবেশে এটি ব্যবহার করা উচিত নয়।
var_dump($variable); // ভেরিয়েবল ডাম্প করা
print_r($array); // অ্যারে প্রিন্ট করা
profiler
for Performance DebuggingCodeIgniter একটি Profiler টুল সরবরাহ করে, যা ডেটাবেস কুয়েরি, সেশন ডেটা, মেমরি ব্যবহার, HTTP হেডার এবং অন্যান্য গুরুত্বপূর্ণ তথ্য প্রদর্শন করে।
Profiler সক্ষম করতে, application/config/config.php
ফাইলে enable_profiler
কনফিগারেশনটি TRUE
করুন:
$config['enable_profiler'] = TRUE;
এরপর, আপনার পেজে সব ধরনের ডিবাগিং তথ্য দেখতে পারবেন।
Xdebug
for Advanced Debuggingআপনি যদি আরও উন্নত ডিবাগিং চান, তবে Xdebug ব্যবহার করতে পারেন। এটি একটি PHP এক্সটেনশন যা কোড এক্সিকিউশন ট্র্যাক করতে সহায়ক, ভেরিয়েবল চেক করতে এবং ব্রেকপয়েন্টস ব্যবহার করতে সক্ষম।
Xdebug সেটআপ করার জন্য:
log_message()
ফাংশন দিয়ে ত্রুটি লগ করা যায়, যা প্রোডাকশন পরিবেশে উপকারী।ENVIRONMENT
সেট করে ডেভেলপমেন্ট এবং প্রোডাকশন পরিবেশের মধ্যে ত্রুটি হ্যান্ডলিং আলাদা করা যায়।CodeIgniter তে Error Handling এবং Debugging সুবিধা অনেকটাই সহজ এবং কার্যকরী। ডিবাগিং এবং ত্রুটি পরিচালনার জন্য Profiler, log_message(), এবং Xdebug ব্যবহার করলে উন্নত ডেভেলপমেন্ট অভিজ্ঞতা পাওয়া যায়। ত্রুটির সঠিক স্থান চিহ্নিত করে দ্রুত সমাধান করা যায়, এবং এটি কোডের স্থিতিশীলতা নিশ্চিত করতে সহায়ক।
CodeIgniter একটি শক্তিশালী Error Handling সিস্টেম প্রদান করে যা ডেভেলপারদের অ্যাপ্লিকেশন ব্যবহারের সময় ত্রুটি শনাক্ত করতে এবং সেগুলি পরিচালনা করতে সহায়তা করে। এর মাধ্যমে, আপনি ইস্যুগুলো দ্রুত চিহ্নিত এবং সমাধান করতে পারবেন।
CodeIgniter-এ Built-in Error Handling ব্যবহারের জন্য বিভিন্ন পদ্ধতি এবং কনফিগারেশন সেটআপ রয়েছে, যা অ্যাপ্লিকেশনের পারফরম্যান্স এবং সিকিউরিটি উন্নত করে।
CodeIgniter ত্রুটির লগ রাখার জন্য একটি শক্তিশালী সিস্টেম সরবরাহ করে। এটি সাধারণত application/logs/
ফোল্ডারে ত্রুটি লগ ফাইল সংরক্ষণ করে।
Error Logging চালু করতে, application/config/config.php
ফাইলে $config['log_threshold']
প্যারামিটারটি কনফিগার করতে হবে।
log_threshold | বর্ণনা |
---|---|
0 | ত্রুটি লগিং নিষ্ক্রিয় |
1 | শুধুমাত্র Error (Error level) লগ করা হবে |
2 | Error এবং Debugging (Debug level) লগ করা হবে |
3 | Error, Debugging এবং Informational logs (Info level) |
4 | সমস্ত লগ তথ্য (Error, Debugging, Info, and All messages) |
// config.php ফাইল
$config['log_threshold'] = 1; // শুধুমাত্র Error লগ করা হবে
ত্রুটি লগগুলি application/logs/
ফোল্ডারে একটি .php
ফাইল হিসেবে সংরক্ষিত থাকে, যেমন log-YYYY-MM-DD.php
।
CodeIgniter বিভিন্ন Error Level সাপোর্ট করে যা বিভিন্ন ধরনের ত্রুটি রিপোর্ট এবং লগ করতে সাহায্য করে। এগুলি application/config/config.php
ফাইলে কনফিগার করা যেতে পারে।
Error Level | বর্ণনা |
---|---|
ERROR | সাধারণ ত্রুটি, যেমন সার্ভার সমস্যা বা ডাটাবেস সংযোগ ত্রুটি। |
DEBUG | ডিবাগিংয়ের জন্য লোড হওয়া তথ্য (সামান্য সমস্যা)। |
INFO | সাধারণ তথ্য যা ব্যবহারকারীর জন্য উপকারী হতে পারে। |
ALL | সমস্ত স্তরের ত্রুটি এবং লগ তথ্য প্রদর্শন করবে। |
আপনি log_threshold
প্যারামিটার দ্বারা এই লেভেল সেট করতে পারেন।
আপনার নিজের কাস্টম ত্রুটি পরিচালনা করতে আপনি set_error_handler()
ফাংশন ব্যবহার করতে পারেন।
// application/config/errors.php
defined('BASEPATH') OR exit('No direct script access allowed');
// Custom Error handler function
function custom_error_handler($severity, $message, $filepath, $line) {
// Custom error message
echo "<strong>Error Severity: </strong>" . $severity . "<br>";
echo "<strong>Error Message: </strong>" . $message . "<br>";
echo "<strong>File Path: </strong>" . $filepath . "<br>";
echo "<strong>Line Number: </strong>" . $line . "<br>";
// Optionally, log the error
log_message('error', $message);
}
// Register the custom error handler
set_error_handler('custom_error_handler');
এই ফাংশনটি ত্রুটি শনাক্ত হলে কাস্টম সিস্টেমে আউটপুট দেখাবে এবং লগ করবে।
CodeIgniter ডিফল্টভাবে শো ত্রুটি নিষ্ক্রিয় করে রাখে (production মোডে)। তবে ডেভেলপমেন্ট পরিবেশে এটি প্রদর্শন করা যেতে পারে।
application/config/config.php
ফাইলে show_debug
সেটিংস এডিট করে ত্রুটি দেখানো যেতে পারে।
// config.php ফাইল
$config['log_threshold'] = 4; // সমস্ত লগ সহ সকল ত্রুটি দেখানো হবে।
$config['show_error'] = TRUE; // ত্রুটি দেখানো
আপনি কাস্টম 404 Error page বা 500 Server Error পেজ তৈরি করতে পারেন।
// Controller Example
public function show_error_page() {
// আপনার কাস্টম 404 পেজ এখানে লোড করা হবে
$this->load->view('custom_error_page');
}
এবং কাস্টম 404 পেজ তৈরি করতে:
// application/views/custom_error_page.php
<html>
<head>
<title>Page Not Found</title>
</head>
<body>
<h1>Sorry, the page you are looking for cannot be found.</h1>
</body>
</html>
CodeIgniter তে Exception Handling ব্যবহারের মাধ্যমে ত্রুটিগুলি আরও দক্ষতার সাথে পরিচালনা করা যায়। এটি try-catch ব্লক ব্যবহার করে করা হয়।
try {
// Some code that might throw an exception
throw new Exception('Something went wrong!');
} catch (Exception $e) {
// Handle exception
echo 'Caught exception: ', $e->getMessage(), "\n";
log_message('error', 'Caught exception: ' . $e->getMessage()); // Log the exception
}
CodeIgniter এর Built-in Error Handling সিস্টেম ডেভেলপারদের জন্য একটি শক্তিশালী টুল, যা ত্রুটি দ্রুত শনাক্ত করতে এবং সমাধান করতে সহায়ক। এটি কাস্টম এবং ডিফল্ট ত্রুটি হ্যান্ডলিং সিস্টেম, লগিং এবং কাস্টম 404 বা 500 পেজ প্রদর্শন করার সুবিধা দেয়।
CodeIgniter-এ Custom Error Pages তৈরি করা একটি সাধারণ কিন্তু গুরুত্বপূর্ণ কার্যক্রম, যা ব্যবহারকারীদের সুন্দর এবং স্পষ্টভাবে ত্রুটি বার্তা দেখানোর জন্য ব্যবহৃত হয়। যখন ব্যবহারকারী কোনো ভুল URL ইনপুট করে বা সার্ভারের কোনো সমস্যা ঘটে, তখন আপনি একটি কাস্টম ত্রুটি পৃষ্ঠা (যেমন 404 পেজ) দেখাতে পারেন।
404 Error পৃষ্ঠা তখন দেখানো হয় যখন ব্যবহারকারী ভুল URL প্রবেশ করে বা কোনো পৃষ্ঠা পাওয়া যায় না।
প্রথমে একটি কাস্টম 404 পৃষ্ঠা তৈরি করতে হবে। আপনি আপনার views ফোল্ডারে একটি error_404.php
ফাইল তৈরি করতে পারেন।
application/views/error_404.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>404 - Page Not Found</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin-top: 100px;
}
h1 {
color: red;
}
</style>
</head>
<body>
<h1>404 - Page Not Found</h1>
<p>Sorry, the page you are looking for could not be found.</p>
<a href="<?php echo base_url(); ?>">Go Back to Home</a>
</body>
</html>
এরপর, আপনাকে routes.php ফাইলে 404 কাস্টম পৃষ্ঠা কনফিগার করতে হবে।
application/config/routes.php
$route['404_override'] = 'errors/page_not_found';
এখানে, errors/page_not_found
কন্ট্রোলারকে নির্দেশ করছে, যেটি আপনার কাস্টম 404 পৃষ্ঠা দেখাবে।
এরপর, একটি Error Controller তৈরি করতে হবে, যা 404 পৃষ্ঠাটি রেন্ডার করবে।
application/controllers/Errors.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Errors extends CI_Controller {
public function page_not_found() {
$this->load->view('error_404');
}
}
এই কন্ট্রোলারটি 404 পৃষ্ঠাটি লোড করার জন্য দায়ী।
CodeIgniter-এ 404 এর বাইরে অন্য ত্রুটি যেমন 500 (Internal Server Error), 403 (Forbidden), 400 (Bad Request) ইত্যাদি কাস্টম পৃষ্ঠা তৈরি করার জন্যও একই পদ্ধতি অনুসরণ করা যায়।
application/views/error_500.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>500 - Internal Server Error</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
margin-top: 100px;
}
h1 {
color: red;
}
</style>
</head>
<body>
<h1>500 - Internal Server Error</h1>
<p>Sorry, something went wrong on our server.</p>
<a href="<?php echo base_url(); ?>">Go Back to Home</a>
</body>
</html>
404_override
এর মতো, আপনি 500 এবং অন্যান্য ত্রুটি পেজের জন্যও কনফিগারেশন করতে পারেন।
application/config/routes.php
$route['500_override'] = 'errors/internal_error';
application/controllers/Errors.php
public function internal_error() {
$this->load->view('error_500');
}
এখন, আপনি যেকোনো 500 Error-এ এই কাস্টম পৃষ্ঠা দেখতে পাবেন।
CodeIgniter আপনাকে log ফাইলেও ত্রুটি লগ করতে দেয়, যাতে আপনি সার্ভারের সমস্যাগুলি ট্র্যাক করতে পারেন।
application/config/config.php
ফাইলে log_threshold পরিবর্তন করুন:
$config['log_threshold'] = 4; // 4: All error messages (including debugging)
এটি ত্রুটি লগিং চালু করবে এবং application/logs ডিরেক্টরিতে ত্রুটির তথ্য সংরক্ষণ করবে।
CodeIgniter-এ Custom Error Pages তৈরি করা খুবই সহজ। আপনি 404, 500, 403, 400 সহ অন্যান্য ত্রুটির জন্য কাস্টম পেজ তৈরি করে ব্যবহারকারীদের জন্য আরও ভালো অভিজ্ঞতা দিতে পারেন। ত্রুটি পৃষ্ঠাগুলি সুন্দরভাবে ডিজাইন করা এবং যথাযথ ত্রুটি বার্তা প্রদানের মাধ্যমে আপনার অ্যাপ্লিকেশন আরও ব্যবহারকারী-বান্ধব হবে।
Debugging হচ্ছে কোডের ত্রুটি শনাক্তকরণ এবং তা সমাধান করার প্রক্রিয়া। CodeIgniter একটি অত্যন্ত শক্তিশালী ফ্রেমওয়ার্ক এবং এতে ডিবাগিংয়ের জন্য কিছু কার্যকরী সরঞ্জাম এবং পদ্ধতি রয়েছে। এটি ডেভেলপারদের দ্রুত এবং কার্যকরভাবে ত্রুটি চিহ্নিত করতে সহায়ক।
এখানে CodeIgniter-এ ডিবাগিং করার জন্য বিভিন্ন পদ্ধতি এবং টুলস সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে।
CodeIgniter-এ Error Reporting সক্রিয় করতে application/config/config.php
ফাইলে log_threshold
সেট করা হয়। এখানে আপনি কতটা ডিবাগ ইনফরমেশন চান তা নির্ধারণ করতে পারেন।
log_threshold = 1
: শুধুমাত্র ফ্যাটাল ত্রুটি (fatal errors) দেখানো হবে।log_threshold = 2
: ফ্যাটাল এবং এরর (errors) দেখানো হবে।log_threshold = 3
: ফ্যাটাল, এরর এবং警告 (warnings) দেখানো হবে।log_threshold = 4
: সব ধরনের লোগ (informational logs) দেখানো হবে।উদাহরণ:
$config['log_threshold'] = 4; // সমস্ত ধরনের লগ দেখানো হবে।
CodeIgniter ত্রুটি লগ করতে log_message()
মেথড ব্যবহার করা হয়। এটি ব্যবহৃত হয় কোডে ত্রুটি লগ করার জন্য বা ডিবাগgingের সময় যে কোনও পয়েন্টে মেসেজ প্রিন্ট করার জন্য।
উদাহরণ:
log_message('error', 'This is an error message');
log_message('debug', 'This is a debug message');
log_message('info', 'This is an informational message');
application/logs/
ডিরেক্টরিতে সংরক্ষিত হবে।CodeIgniter এর Profiler একটি ডিবাগging টুল, যা পেজের লোডিং সম্পর্কিত বিভিন্ন তথ্য (যেমন টাইমিং, মেমরি ব্যবহার, রিকোয়েস্ট এবং রেসপন্সের ডেটা) প্রদর্শন করে।
Profiler ব্যবহার করতে application/config/config.php
ফাইলে enable_profiler
সেট করুন:
$config['enable_profiler'] = TRUE;
এরপর আপনার কন্ট্রোলারে নিচের কোড যোগ করুন:
$this->output->enable_profiler(TRUE);
এটি পেজে পেজের পারফরম্যান্স সম্পর্কিত তথ্য প্রদর্শন করবে, যেমন:
var_dump()
এবং print_r()
PHP এর var_dump()
এবং print_r()
ফাংশন দুটি অত্যন্ত জনপ্রিয় ডিবাগging টুল। এগুলো ডেটা স্ট্রাকচার এবং ভেরিয়েবলের মান দেখতে ব্যবহার করা হয়।
উদাহরণ:
var_dump($some_data);
print_r($some_array);
এগুলি সাধারণত view ফাইলে বা controller-এ ডেটা চেক করার জন্য ব্যবহার করা হয়।
Xdebug একটি অত্যন্ত শক্তিশালী PHP ডিবাগিং টুল যা কোড লাইনে ব্রেকপয়েন্ট সেট করে, স্ট্যাক ট্রেস প্রদর্শন করে এবং আরও অনেক কিছু করতে সাহায্য করে। Xdebug আপনার কোডের কার্যক্রম ট্র্যাক করতে এবং ত্রুটি শনাক্ত করতে খুব সহায়ক।
PHP.ini ফাইলে Xdebug কনফিগারেশন যোগ করুন:
zend_extension="path/to/xdebug.so"
xdebug.remote_enable = 1
xdebug.remote_autostart = 1
Xdebug এর মাধ্যমে কোডে ব্রেকপয়েন্ট সেট করে আপনি কিভাবে কোড এক্সিকিউট হচ্ছে, কোথায় ত্রুটি ঘটছে তা শনাক্ত করতে পারেন।
CodeIgniter-এ ডাটাবেস কোয়েরি ডিবাগিং করার জন্য last_query()
মেথড ব্যবহার করা হয়। এটি সর্বশেষ রানের কোয়েরি স্ট্রিং দেখাবে, যা ডিবাগিংয়ের সময় খুবই সহায়ক।
$query = $this->db->get('users');
echo $this->db->last_query();
আপনি কোয়েরি ডিবাগিং চালু করতে db_debug
কনফিগারেশন পরিবর্তন করতে পারেন:
$config['db_debug'] = TRUE; // কোয়েরি ত্রুটি দেখানোর জন্য
এটি ত্রুটির সময় কোয়েরি স্টেটমেন্ট এবং এরর মেসেজ দেখাবে।
CodeIgniter CLI (Command Line Interface) এর মাধ্যমে আপনি কোড রান করতে পারেন এবং ডেটাবেস ইন্টারঅ্যাকশন চেক করতে পারেন। এটি একটি শক্তিশালী টুল যা ডেটাবেস এবং কোডের কার্যকলাপ লাইভ দেখতে সহায়ক।
Tinker হচ্ছে একটি PHP REPL (Read-Eval-Print Loop) যা আপনার কোডের সাথে সরাসরি ইন্টারঅ্যাকশন করার সুযোগ দেয়।
php artisan tinker
এটি আপনাকে ডাটাবেস এবং মডেল ইন্টারঅ্যাকশনের জন্য টার্মিনালেই লাইভ কোড পরীক্ষা করার সুযোগ দেয়।
Monolog একটি জনপ্রিয় লগিং লাইব্রেরি যা PHP-তে কার্যকরভাবে লগিং পরিচালনা করতে ব্যবহৃত হয়। CodeIgniter-এ Monolog ব্যবহার করে লগিং আরও উন্নত করা যায়।
Monolog ইনস্টল:
composer require monolog/monolog
তারপর এটি CodeIgniter-এ ইন্টিগ্রেট করা হয়, এবং আপনি সমস্ত টার্গেট লগ (ফাইল, ডাটাবেস, ইত্যাদি) একত্রে ট্র্যাক করতে পারবেন।
CodeIgniter-এ ত্রুটি পরিচালনার জন্য Error Handling মেথড ব্যবহার করা হয়।
CodeIgniter-এ কাস্টম ত্রুটি পেজ তৈরি করতে 404_override
রাউটিং সেট করা হয়।
$route['404_override'] = 'errors/page_not_found';
CodeIgniter ত্রুটি বা Exception হ্যান্ডলিং করতে try-catch
ব্লক ব্যবহার করা হয়। উদাহরণ:
try {
// কোড যা ত্রুটি সৃষ্টি করতে পারে
} catch (Exception $e) {
log_message('error', 'Error: ' . $e->getMessage());
}
CodeIgniter-এ ডিবাগিংয়ের জন্য বেশ কিছু কার্যকরী টুল এবং পদ্ধতি রয়েছে। Error Reporting, Logging, Profiler, Xdebug এবং Query Debugging ইত্যাদি ফিচার ব্যবহার করে আপনি আপনার কোডের ত্রুটি চিহ্নিত এবং সমাধান করতে পারবেন। তাছাড়া, Monolog এবং CLI Debugging ব্যবহার করে লগিং এবং ডিবাগিং আরও উন্নত করা যায়। CodeIgniter ডেভেলপমেন্টে এই টুলস আপনাকে কোডের সমস্যাগুলি দ্রুত সনাক্ত এবং সমাধান করতে সাহায্য করবে।
Error Tracking এবং Logging একটি গুরুত্বপূর্ণ অংশ যেকোনো অ্যাপ্লিকেশনের জন্য, কারণ এটি সমস্যা চিহ্নিত করতে এবং ডিবাগিং প্রক্রিয়াকে সহজ করে তোলে। CodeIgniter এ এর জন্য একটি শক্তিশালী Logging সিস্টেম রয়েছে, যা ডেভেলপারদের অ্যাপ্লিকেশনের ত্রুটিগুলো লগ ফাইলের মাধ্যমে ট্র্যাক করতে সহায়তা করে। এতে ডেটা নিরাপত্তা বজায় রেখে বিভিন্ন ধরনের লগ তৈরি করা যায়, যেমন: Error logs, Debug logs, এবং Informational logs।
CodeIgniter ফ্রেমওয়ার্কে লগ ফাইল ব্যবহার করে Error Tracking করতে নিচের পদ্ধতিগুলি অনুসরণ করা যায়।
CodeIgniter এ লোগিং সিস্টেমের জন্য প্রধান কনফিগারেশন ফাইল হলো application/config/config.php
।
application/config/config.php
ফাইলটি খুলুন এবং নিচের কনফিগারেশন সেট করুন:
$config['log_threshold'] = 4; // লোগিং স্তর
$config['log_path'] = ''; // লগ ফাইলের পাথ (ডিফল্ট: application/logs)
$config['log_file_extension'] = 'log'; // লগ ফাইল এক্সটেনশন
$config['log_file_permissions'] = 0644; // ফাইলের পারমিশন
$config['log_date_format'] = 'Y-m-d H:i:s'; // লগ তারিখের ফরম্যাট
log_threshold
সেটিংlog_threshold বিভিন্ন স্তরের লগিং নিয়ন্ত্রণ করে:
CodeIgniter এর log_message() ফাংশনটি ব্যবহার করে বিভিন্ন ধরনের লগ তৈরি করা যায়। এটি error
, debug
, info
এবং alert
ধরনের লগ তৈরি করতে সক্ষম।
log_message('error', 'This is an error message!');
'error'
হলো লগের স্তর এবং 'This is an error message!'
হলো লগ বার্তা।log_message('debug', 'This is a debug message!');
log_message('info', 'This is an informational message!');
লগ ফাইলগুলি ডিফল্টভাবে application/logs
ডিরেক্টরিতে সংরক্ষণ করা হয়। তবে, আপনি log_path
কনফিগারেশন সেটিংয়ের মাধ্যমে লগ ফাইলের অবস্থান পরিবর্তন করতে পারেন।
$config['log_path'] = '/var/logs/codeigniter/';
লগ ফাইলের নাম সাধারণত log-YYYY-MM-DD.php ফরম্যাটে হয়, যেখানে YYYY-MM-DD লগের তারিখ। আপনি যদি কাস্টম নাম ব্যবহার করতে চান, তবে log_file_extension সেটিং ব্যবহার করতে পারেন।
ধরা যাক, একটি UserController তৈরি করতে চান যা ব্যবহারকারীর তথ্য দেখাবে এবং যদি কোনো ত্রুটি ঘটে, তাহলে সেটি লগ করবে।
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class UserController extends CI_Controller {
public function __construct() {
parent::__construct();
$this->load->model('UserModel');
}
public function get_user_data($id) {
try {
// ডেটা সংগ্রহ
$user = $this->UserModel->get_user_by_id($id);
// ডেটা না থাকলে error log
if (!$user) {
log_message('error', 'User with ID ' . $id . ' not found.');
show_404(); // 404 পেজ দেখান
}
// ডেটা শো
$this->load->view('user_view', ['user' => $user]);
} catch (Exception $e) {
log_message('error', 'Error occurred: ' . $e->getMessage());
show_error('An error occurred while fetching user data.');
}
}
}
log_message('error', ...)
ব্যবহার করা হয়েছে যখন ডেটা পাওয়া যায় না অথবা অন্য কোনো ত্রুটি ঘটে।show_error()
ব্যবহার করা হয়েছে ত্রুটি বার্তা ব্যবহারকারীকে দেখানোর জন্য।<?php
class UserModel extends CI_Model {
public function get_user_by_id($id) {
$query = $this->db->get_where('users', ['id' => $id]);
if ($query->num_rows() == 0) {
log_message('error', 'User with ID ' . $id . ' not found in database.');
return false; // User not found
}
return $query->row_array();
}
}
CodeIgniter এ Logging এবং Error Tracking সিস্টেম ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনের ত্রুটিগুলো সঠিকভাবে ট্র্যাক করতে পারেন এবং দ্রুত সমাধান পেতে পারেন। এটি একটি গুরুত্বপূর্ণ টুল যা ডেভেলপমেন্ট এবং মেইন্টেনেন্সকে অনেক সহজ করে তোলে।
Read more